package com.huawei.esdk.tp.device.smc.v100r003c00;

import java.util.List;

import com.huawei.esdk.platform.common.SDKErrorCode;
import com.huawei.esdk.platform.common.SDKResult;
import com.huawei.esdk.tp.device.smc.v100r002c01.SMC20V1R2C01IConferenceControlCapability;
import com.huawei.esdk.tp.domain.model.RecordingConference;
import com.huawei.esdk.tp.domain.model.bean.SiteVolume;

public interface SMC20V1R3C00IConferenceControlCapability extends SMC20V1R2C01IConferenceControlCapability
{
    /** 
     * 启动会议直播功能
     *
     * @param confId 会议ID
     * @param videoSourceUri 视频源所在会场标识
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @since eSDK TP V100R003C20
     */
    public SDKErrorCode startLiveBroadcastEx(String confId, String videoSourceUri);
    
    /** 
     * 停止会议直播功能
     *
     * @param confId 会议ID
     * @param videoSourceUri 视频源所在会场标识
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @since eSDK TP V100R003C20
     */
    public SDKErrorCode stopLiveBroadcastEx(String confId, String videoSourceUri);
    
    /** 
     * 启动录制
     *
     * @param confId 会议ID
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @since eSDK TP V100R003C20
     */
    public SDKErrorCode startRecordingEx(String confId);
    
    /** 
     * 停止录制
     *
     * @param confId 会议ID
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @since eSDK TP V100R003C20
     */
    public SDKErrorCode stopRecordingEx(String confId);
    
    /** 
     * 查询历史会议的录播地址
     *
     * @param confIds 待查询录播地址的会议ID列表
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @since eSDK TP V100R003C20
     */
    public SDKResult<RecordingConference> queryHistoryRecordAddrEx(List<String> confIds);
    
    /**
     * 指定会场发言（点名发言）
     * 
     * @param confId 指定的会议ID
     * @param siteUri 指定会场的Uri地址
     * @return SDKErrorCode 成功：0，失败返回相应错误码
     * @see eSDK TP V100R003C20
     */
    public SDKErrorCode setFloorEx(String confId, String siteUri);

    /** 
     * 设置会场音量值
     * 
     * @param confId 会议ID
     * @param siteVolumeExs 设置会场的音量值
     * @return SDKErrorCode 0：表示成功  其他数值：表示失败
     * @see eSDK TP V100R003C20
     */
    public SDKErrorCode setConfSiteVolumeEx(String confId, List<SiteVolume> siteVolumes);
    
    /** 
     * 选择准备录制的视频源
     * 
     * @param confId 会议ID
     * @param videoSourceUri 视频源所在会场标识
     * @return SDKErrorCode 0：表示成功  其他数值：表示失败
     * @see eSDK TP V100R003C20
     */
    public SDKErrorCode setRecordingVideoSourceEx(String confId, String videoSourceUri);
    
    /** 
     * 打开会议中会场的视频
     * 
     * @param confId 会议ID
     * @param siteUris 关闭视频会场的URI列表
     * @return SDKErrorCode 0：表示成功  其他数值：表示失败
     * @see eSDK TP V100R003C20
     */
    public SDKErrorCode displayConfSiteLocalVideoEx(String confId, List<String> siteUris);

    /** 
     * 关闭会议中会场的视频
     * 
     * @param confId 会议ID
     * @param siteUris 关闭视频会场的URI列表
     * @return SDKErrorCode 0：表示成功  其他数值：表示失败
     * @see eSDK TP V100R003C20
     */
    public SDKErrorCode hideConfSiteLocalVideoEx(String confId, List<String> siteUris);


}
